home *** CD-ROM | disk | FTP | other *** search
/ Freelog 115 / FreelogNo115-MaiJuin2013.iso / Internet / Filezilla Server / FileZilla_Server-0_9_41.exe / source / hash_thread.h < prev    next >
C/C++ Source or Header  |  2011-11-06  |  930b  |  57 lines

  1. #ifndef __HASHTHREAD_H__
  2. #define __HASHTHREAD_H__
  3.  
  4. class CServerThread;
  5. class CHashThread
  6. {
  7. public:
  8.     enum _result
  9.     {
  10.         OK = 0,
  11.         PENDING = 1,
  12.         BUSY = 2,
  13.         FAILURE_OPEN = 4,
  14.         FAILURE_READ = 8,
  15.         FAILURE_MASK = 12
  16.     };
  17.  
  18.     enum _algorithm
  19.     {
  20.         MD5,
  21.         SHA1,
  22.         SHA512
  23.     };
  24.  
  25.     CHashThread();
  26.     virtual ~CHashThread();
  27.  
  28.     enum _result Hash(LPCTSTR file, enum _algorithm algorithm, int& id, CServerThread* server_thread);
  29.  
  30.     enum _result GetResult(int id, CHashThread::_algorithm& alg, CStdString& hash, CStdString& file);
  31.  
  32.     void Stop(CServerThread* server_thread);
  33.  
  34. private:
  35.     void DoHash();
  36.     void Loop();
  37.  
  38.     static DWORD WINAPI ThreadFunc(LPVOID pThis);
  39.  
  40.     LPTSTR m_filename;
  41.     CServerThread* m_server_thread;
  42.  
  43.     CCriticalSectionWrapper m_sync;
  44.  
  45.     bool m_quit;
  46.  
  47.     int m_id;
  48.     int m_active_id;
  49.     enum _result m_result;
  50.     char* m_hash;
  51.     enum _algorithm m_algorithm;
  52.  
  53.     HANDLE m_hThread;
  54. };
  55.  
  56. #endif
  57.